/**
 * 响应拦截
 * @param {Object} http
 */
module.exports = vm => {
  uni.$u.http.interceptors.response.use(
    response => {
      /* 对响应成功做点什么 可使用async await 做异步操作*/
      const data = response.data
      // 自定义参数
      const custom = response.config?.custom

      switch (data.code) {
        case 200:
          return data.data || {}
        case 400:
          uni.$u.toast(data.msg)
          return Promise.reject(data)
        case 401:
          uni.$u.toast('登录已过期')
          throw data.msg
          break
        case 405:
          uni.$u.toast('当前操作不被允许')
          return Promise.reject(data)
        case 429:
          uni.$u.toast('请求过多，先休息一下吧')
          return Promise.reject(data)
        case 500:
          uni.$u.toast('500,' + data.msg)
          return Promise.reject(data)
        default:
          uni.$u.toast(data.msg)
          return Promise.reject(data)
      }
    },
    response => {
      /*  对响应错误做点什么 （statusCode !== 200）*/
      return Promise.reject(response)
    }
  )
}
